ZIpFile.entries() 获取的是压缩包内的所有文件(包括文件夹),不只是第一层的文件(和文件夹)
如果是用MultipartFile接收的Zip文件,需要先保存到本地 ,然后再解析:
/**
* MultipartFile存本地
* @param file 要保存到本地的文件
* */
public static void saveMultipartFile(MultipartFile file) throws IOException{
//创建根目录
String savePath = "D:\\temp" ;
File localFile = new File(savePath+File.separator+file.getOriginalFilename());
localFile.mkdirs();
file.transferTo(localFile);
}
解析zip文件并复制文件:
/**
* @param srcFile zip源文件
* @param savePath 文件保存路径
* @throws RuntimeException 解压失败会抛出运行时异常
* */
public static void resolveZip(File srcFile,String savePath) {
//解压文件
ZipFile zipFile = null;
try {
zipFile = new ZipFile(srcFile, C